package zhoug.common.utils;

import java.text.MessageFormat;

import androidx.annotation.NonNull;
import zhoug.logging.Logger;

/**
 * @Author: zhoug
 * @Date: 2025-02-13
 * @Description:
 */
public class ClassUtils {
    private static final String TAG = ">>>ClassUtils";

    /**
     * @noinspection unchecked
     */
    public static <T> T castTo(Object obj, @NonNull Class<T> classOfT) {
        if (obj != null) {
            //a对象所对应类信息是b对象所对应的类信息的父类或者是父接口，简单理解即a是b的父类或接口
            //a和b为同一个类或同一个接口
            if (classOfT.isAssignableFrom(obj.getClass())) {
                try {
                    return (T) obj;
                } catch (Exception e) {
                    Logger.e(TAG, "castTo:"+e.getMessage());
                }
            }
            Logger.e(TAG, MessageFormat.format("{0}不能转化成{1}",obj.getClass().getSimpleName(),classOfT.getSimpleName()));
        }
        return null;
    }

}
